package com.small.push.util;

import com.alibaba.fastjson.JSONObject;

import java.util.Objects;

/**
 * 构建TemplateMsgDTO的工具类
 * @author dingyou
 * @version 1.2
 * @date 2018/8/28
 */
public class TemplateMsgDataUtils {
    /** data字段中value字段的key */
    private static final String VALUE = "value";
    private static final String BASE_KEY = "keyword";

    /**
     * 生成微信要的data字段
     * @param keyOrValues
     * @return
     */
    public static JSONObject getFormKeyAndValues(String... keyOrValues) {
        if (Objects.isNull(keyOrValues)) {
            return null;
        }
        boolean keyFlag = true;
        String key = null;
        JSONObject result = new JSONObject((keyOrValues.length) >> 1);
        JSONObject value;
        for (String keyOrValue : keyOrValues) {
            if (keyFlag) {
                key = keyOrValue;
            } else {
                value = new JSONObject(1);
                value.put(VALUE, keyOrValue);
                result.put(key, value);
            }
            keyFlag = !keyFlag;
        }
        return result;
    }

    /**
     * 生成微信要的data字段, 只传value即可, key按顺序自动生成
     * @param values
     * @return
     */
    public static JSONObject getFormValues(Object... values) {
        if (Objects.isNull(values)) {
            return null;
        }
        int i = 1;
        JSONObject result = new JSONObject((values.length));
        for (Object value : values) {
            JSONObject valueObject = new JSONObject(1);
            valueObject.put(VALUE, value);
            result.put(BASE_KEY + i, valueObject);
            i++;
        }
        return result;
    }
}
